Procedure and system for scheduling a shared recourse between multiple information packet flows

ABSTRACT

Each synchronous flow (h=1, 2, N s ) is associated to a respective synchronous capacity value (H h ) indicative of the maximum amount of time for which a synchronous flow can be served before relinquishing the token. Each asynchronous flow (I=1, 2, N A ) is, on the other hand, associated to a respective indicative value of the delay to be recovered so that the respective queue has the right to be served and to another value indicating the instant in which the server visited the respective queue in the pervious cycle. Each queue associated to a synchronous flow (h) is therefore served for a maximum amount of time that is equal to the aforesaid synchronous capacity value, while each queue associated to an asynchronous flow (i) is only served if the server&#39;s visit takes place with anticipation with respect to the expected instant. This anticipation is determined as the difference between the expected rotation time, needed by the server ( 10 ) to complete a visit cycle (T) of the queues associated to the aforesaid flows (h, i), and the time that has passed since the server&#39;s previous visit ( 10 ) and the delay accumulated. This difference, if positive, defines the maximum service time for the asynchronous queue. If the queue is empty when the server visits it, the server ( 10 ) moves on to the next queue even before the relative maximum service time has passed.

[0001] This invention refers to the packet communication systems, and inparticular to the scheduling criteria of a shared resource, i.e. thecriteria used to select the packet to which the resource is to beassigned each time this occurs.

[0002] The solution given in the invention has been developed both forradio resource scheduling (e.g.: MAC level scheduling), and for thescheduling of computational and transmissive resources in the networknodes (e.g.: flow scheduling with different service quality on InternetProtocol router (IP). The following description is based especially onthe latter application example, and is given purely as an example anddoes not limit the scope of the invention.

[0003] For several years now, the widespread application and rapidevolution of the packet networks have given rise to the problem ofintegrating the traditional services offered by the old generationpacket networks (electronic mail, web surfing, etc.) and the newservices previously reserved for circuit switching networks (real timevideo, telephony, etc.) into the so-called integrated services networks.The integrated services networks must therefore be able to handletraffic flows with different characteristics and to offer each type offlow a suitable service quality, a set of performance indexes negotiatedbetween user and service provider, which must be guaranteed within theterms agreed upon.

[0004] One of the key elements in providing the service qualityrequested is given by the scheduling implemented on the network nodes,i.e. by the criteria with which the packet to be transmitted is selectedeach time from those present on the node; this criteria must obviouslymatch the following characteristics:

[0005] flexibility, in the sense of capacity to provide different typesof services;

[0006] simplicity, a characteristic that makes it possible to use inenvironments that require high transmission speeds and the handling ofnumerous transmission flows; and

[0007] efficiency in the use of the shared resource (e.g. thetransmissive means).

[0008] This invention, having the characteristics referred to in theclaims that follow, initially consists of a scheduling procedure thatcan satisfy the aforesaid requirements. Another aspect of the inventionis that it also relates to the relative system.

[0009] In particular, the solution given in the invention is able toprovide different types of service at a low computational cost, and cantherefore be applied to computer networks that must guarantee its usersquality of service, like the IP networks in intserv or diffservtechniques. The solution given in the invention also applies to thescheduling systems of radio resources such as MAC level schedulingalgorithms (W-LAN systems, third-generation mobile-radio services).

[0010] In particular, the solution given in the invention guarantees thebit rate of the various flows, the maximum queueing delay and themaximum occupation of the buffers of each flow for synchronous traffic.In its current preferred form of actuation, the solution given in theinvention is capable of providing the following characteristics:

[0011] flexibility: the solution given in the invention offers twodifferent types of service, rate-guaranteed (suitable for synchronousflows) and best-effort (suitable for asynchronous flows), and istherefore able to function in service integration networks;

[0012] isolation of flows: the special architecture makes it possible toisolate the transmission flows, i.e. it makes the service offered to asingle-flow independent from the presence and behaviour of other flows;

[0013] low computational complexity: the number of operations necessaryto select the packet to be transmitted each time is independent from thenumber of transmission flows present, and therefore the system has onecomputational complexity 0(1); this property makes the systemparticularly suitable for environments in which the transmission speedsand the number of flows are high;

[0014] adaptability: the solution given in the invention is able tohandle a change in the operating parameters (e.g. the number of flowspresent) by redistributing its resources without having to resort tocomplex procedures; and

[0015] analytic describability: a complete analytic description of thesystem's behaviour is provided; this makes it possible to relate theservice quality measurements to the system parameters.

[0016] The following description of the invention is given as anon-limiting example, with reference to the annexed drawing, whichincludes a single block diagram figure that illustrates the operatingcriteria of a system working according to the invention.

[0017] A scheduling system as given in the invention is able tomultiplex a single transmission channel into multiple transmissionflows.

[0018] The system offers two different types of service: arate-guaranteed service, suitable for transmission flows (henceforth, hsynchronous flows with h=1, 2, . . . , N_(s)) that require a guaranteedminimum service rate, and a best-effort service, suitable fortransmission flows (henceforth, i asynchronous flows, with i=1, 2, . . ., N_(A)) that do not require any guarantee on the service rate. Thesystem provides the latter, however, with a balanced sharing of thetransmission capacity not used by the synchronous flows.

[0019] The traffic from each transmission flow input on the node isinserted in its queue (synchronous or asynchronous queues will bediscussed later) from which it will be taken to be transmitted. Theserver 10 visits the queues in a fixed cyclic order (ideally illustratedin the figure of the drawings with trajectory T and arrow A), grantingeach queue a service time established according to precise timingconstraints at each visit.

[0020] System operation as given in the invention includesinitialisation followed by the cyclic queue visit procedures. Theseprocedures will be discussed later.

[0021] Initialisation

[0022] First of all, it is necessary to give the system the informationrelating to the working conditions: how many synchronous flows there are(in general: N_(A)), what the transmission rate requested by each ofthese flows is, how many asynchronous flows there are, the expectedrotation time (TTRT), i.e. how long a complete cycle during which theserver visits all the queues once is to last.

[0023] On the basis of this information, the system parameters can bedefined:

[0024] each synchronous flow h, h=1. . . N_(s), is associated, accordingto an appropriate allocation policy, to a variable H_(h) (synchronouscapacity) that measures the maximum time for which the traffic of asynchronous flow can be transmitted before relinquishing the token. Thepossible allocation policies will be described below;

[0025] each asynchronous flow i i=1. . . N_(A) is associated to twovariables, lateness (i) and last_token_time(i); the first variablestores the delay that must be made up for the asynchronous queue i tohave the right to be served; the second variable stores the instant inwhich the server visited the asynchronous queue i in the previous cycle.These variables are initialised to zero.

[0026] The system clock is also started; supposing that the reading ofthe current_time variable gives the current time with the desiredprecision, the queue scanning will start.

[0027] Visit to a Generic Synchronous Queue h, with h=1. . . N_(s)

[0028] A synchronous queue can be served for a period of time equal toits maximum synchronous capacity H_(h), determined during theinitialisation stage. If the queue being served is empty, the serverwill move on to visit the next queue, even if the H_(h) time has notpassed.

[0029] Visit to a Generic Asynchronous Queue i, with i=1. . . N_(A);

[0030] An asynchronous code can be served only if the server's visitoccurs before the expected instant. To calculate whether the server'svisit is in advance, subtract the time that has passed between theprevious visit and the accumulated delay lateness(i) from the expectedrotation time TTRT. If this difference is positive, it gives the periodof time for which the asynchronous queue i has the right to be served,and in this case the lateness variable (i) is reset. If the differenceis negative, the server is late, and therefore the queue i cannot beserved; in this case, the delay is stored in the lateness variable (i).The same applies to the asynchronous queues; if the queue being servedis empty, the server will move on to visit the next one even if thepreviously calculated service time has not yet passed completely.

[0031] The pseudocode illustrated below analytically describes thebehaviour of a system as given in the invention which proposes thescheduling of N_(A) asynchronous flows and N_(s) synchronous flowssimultaneously (N_(A) and N_(s) must be non-negative integers). Itshould be supposed that each synchronous flow h, h=1. . . N_(s) requiresa service rate equal to f_(h) times the capacity of the output channel(0≦f_(h)≦1), and that the sum of the service rates requested by thesynchronous flows does not exceed the capacity of the channel itself(Σ_(h=1) ^(N) _(s)f_(h)≦1)

[0032] Initialisation

[0033] fetch_parameters (N_(s), f₁. . . f_(Ns), N_(A), TTRT)

[0034] select_parameters (H₁. . . H_(Ns));

[0035] for (i=1 to N_(A)) {lateness(i)=0; last_token_time (i)=0; }

[0036] current_time=0; Start_Cycle; Visit to a generic synchronous queueh, with h = 1 . . . N_(S): Transmit_for_a_Time (H_(h)) Next_Visit; Visitto a generic asynchronous queue i, with i = 1 . . . N_(A): t =current_time; temp = TTRT - lateness(i) - (t - last_token_time(i)); if(temp >0) { Transmit_for_a_Time (temp); lateness(i)=0 ; } elselateness(i) = - temp; last_token_time(i) = t; Next_Visit;

[0037] The ability to guarantee that the synchronous flows receive aminimum service rate that is not less than that requested depends onwhether the synchronous capacities H_(h), h=1. . . N_(s) have beenselected correctly. In the system given in the invention, the H_(h),h=1. . . N_(s) are selected in proportion to the value of the expectedrotation time TTRT:

H _(h) =TTRT·C _(h)

[0038] The values of the proportionality constant C_(h) can be selectedaccording to one of the following two schemes:

[0039] local scheme: C_(h)=f_(h)${{- {global}}\quad {{scheme}:C_{h}}} = \frac{N_{A} \cdot f_{h}}{N_{A} + 1 - {\sum\limits_{j = 1}^{N_{s}}\quad f_{j}}}$

[0040] The applicability of the global scheme is naturally linked to thepresence of at least one asynchronous flow.

[0041] If the H_(h) are calculated following one of the afore-mentionedschemes, each synchronous flow is served at a rate that is no less thanr_(h) times the capacity of the channel, with r_(h) given by thefollowing expression:$r_{h} = \frac{\left\lbrack {N_{A} + 1} \right\rbrack \cdot C_{h}}{N_{A} + {\sum\limits_{j = 1}^{N_{s}}\quad C_{j}}}$

[0042] and it can be guaranteed that, given any interval of time [t₁,t₂) in which the generic synchronous queue h is never empty, the servicetime ^(W) ^(_(h)) ^((t) ^(_(1,)) ^(t) ^(₂) ⁾ received by the h queue in[t₁, t₂), the following inequality will occur:

0<r _(h)·(t ₂ −t ₁)−W_(h)(t₁, t₂)≦Λ_(h) <∞, ∀t ₂ ≧t ₁ , h=1. . . N _(s)  (1)

[0043] with:

Λ_(h) =C _(h) ·TTRT·(2−r _(h))>min (2H _(h) , TTRT)

[0044] Relation (1) above establishes that the service provided by thesystem given in the invention to a synchronous flow h does not differ bymore than ^(Λ) ^(_(h)) from the service that the same flow wouldexperience if it were the only owner of a private transmission channelwith a capacity equal to ^(r) ^(_(h)) times that of the channel handledby the scheduler as given in the invention. ^(Λ) ^(_(h)) thereforerepresents the maximum service delay with respect to an ideal situation.Since ^(Λ) ^(_(h)) is proportional to TTRT, TTRT can be selected tolimit the maximum service delay.

[0045] The global scheme guarantees a better use of the transmissioncapacity of the channel with respect to the local scheme, in that underthe same operating conditions it allocates a lower capacity to thesynchronous flows, leaving a larger section of the band free forasynchronous flow transmissions.

[0046] On the other hand, the use of a global scheme envisages that allthe H_(h) parameters are recalculated each time the number of flows(synchronous or asynchronous) in the system changes; the use of a localscheme, however, means that the H_(h) can be established independentlyfrom the number of flows present in the system.

[0047] The guarantee on the minimum service rate makes it possible toprovide guarantees on the maximum buffer occupation (backlog) and on themaximum queuing delay for synchronous traffic if appropriate mechanismsfor conditioning input traffic are used.

[0048] Assuming a composite leaky bucket is used as a trafficconditioning mechanism, consisting of n≧1 leaky bucket in cascade, andgranting that each leaky bucket is characterised by a pair of parameters(b_(j),t_(j)), j=1. . . n, where b_(j) is the dimension of the leakybucket (expressed in units of time), and 1/t_(j) is the filling rate ofthe leaky bucket, it is possible to define the following quantities:$\begin{matrix}{T_{j} = {\frac{b_{j} - b_{j + 1}}{t_{j} - t_{j + 1}}t_{j}t_{j + 1}}} \\{B_{j} = \frac{{b_{j}t_{j}} - {b_{j + 1}t_{j + 1}}}{t_{j} - t_{j + 1}}}\end{matrix}$

[0049] where b_(n+1)=0 and t_(n+1)=0 are introduced for the sake of easynotation. We can suppose (without losing general aspects) that thefollowing inequalities have occurred: t_(j)>t_(j+1), b_(j)>b_(j+1),T_(j)>T_(j+1) for j=1. . . n−1

[0050] Supposing that the generic synchronous flow k has guaranteed arate equal to r_(k), if the traffic sent by the synchronous flow k islimited by a composite leaky bucket with n stages described by theparameters (b_(j),t_(j)), j=1. . . n, the following guarantees can beformulated.

[0051] If r_(k)≧1/t₁, then both the backlog and the queuing delay havean upper limit; in addition, if the single leaky bucket is marked withindex i, we have: 1/t_(i)≦r_(k)<1/t_(i+1), i=1. . . n:

[0052] the queuing delay is limited at the top by:

d _(k)=(Λ_(k) +B _(i))/r _(k) −T _(i)

[0053] if Λ_(k)/r_(k)≦T_(i), the backlog is limited at the top by:q_(k)=Λ_(k)+B_(i)−r_(k)·T_(i)

[0054] if Λ_(k)/r_(k)>T_(i), the backlog is limited at the top by:${q_{k} = {\frac{\Lambda_{k}}{t_{h} \cdot r_{k}} + b_{h}}},$

[0055] where h is the leaky bucket that checks the inequalityT_(h)≦Λ_(k)/r_(k)<T_(h−1), h=1. . . i¹.

[0056] T₀=∞ has been used in the above description for the sake of easynotation.

[0057] Obviously the details of how this is done can be altered withrespect to what has been described, without however, leaving the contextof this invention.

1. Procedure for the scheduling of a service resource shared betweenmultiple information packet flows, said flows generating respectiveassociated queues and being served by the attribution of a token; thisplurality of flows includes synchronous flows (h=1, 2, . . . , N_(s)),which require a guaranteed minimum service rate, and asynchronous flows(i=1, 2, . . . , N_(A)) destined to exploit the service capacity of saidresource left unused by the synchronous flows, characterised by the factthat it includes the following operations: provides a server (10) thatvisits the respective queues associated to said flows (h, i) insuccessive cycles, determining a time value of expected rotation (TTRT),which identifies the time necessary for the server (10) to complete avist cycle on the said respective queues, associates to each synchronousflow (h) a respective synchronous capacity value (H_(h)) indicative ofthe maximum amount of time for which a synchronous flow can be servedbefore relinquishing the token, associates to each asynchronous flow (i)a first respective delay value (lateness(i)) that identifies the valuethat must be made up for the respective queue to have the right to beserved, and a second value (last_token_time) that indicates the instantin which the server (10) visited the respective queue in the previouscycle, determining for said respective queue, the time that has passedsince the previous visit of the server (10), serves each queueassociated to a synchronous flow (h) for a maximum service time equal tosaid respective value of synchronous capacity (H_(h)), and serves eachqueue associated to an asynchronous flow (i) only if the server's visit(10) occurs before the expected instant, said advance being determinedas the difference between said expected rotation time value (TTRT) andthe time that has passed since the server's (10) previous visit and theaccumulated delay; if positive, this difference defines the maximumservice time for each said queue.
 2. Procedure as per claim 1,characterised by the fact that it includes, if the queue is empty whenthe server visits it, the operation that makes the server (10) visit asubsequent queue even before the relative maximum service time haspassed.
 3. Procedure as per claim 1 or claim 2, characterised by thefact that, in the case in which said difference is negative, each saidqueue associated to an asynchronous flow (i) is not served and the valueof said difference is accumulated with said delay.
 4. Procedure as perany of the claims 1 to 3, characterised by the fact that said firstrespective value (lateness (i)) and said second respective value(last_token_time) are initialised to zero.
 5. Procedure as per any oneof the claims 1 to 4, characterised by the fact that said respectivesynchronous capacity value (H_(h)) is determined in proportion to saidexpected rotation time value (TTRT).
 6. Procedure as per claim 5,characterised by the fact that said synchronous capacity value (H_(h))is determined in proportion to said expected rotation time value (TTRT)according to a proportionality factor (C_(h)) selected in relation tothe respective proportionality factor (f_(h)) between the service raterequested by the respective synchronous flow (h) and the servicecapacity of said shared resource.
 7. Procedure as per claim 6,characterised by the fact that said proportionality factor (C_(h)) isselected equal to said respective proportionality factor.
 8. Procedureas per claim 6, characterised by the fact that said proportionalityfactor (C_(h)) is selected on the basis of the following formula$C_{h} = \frac{N_{A} \cdot f_{h}}{N_{A} + 1 - {\sum\limits_{j = 1}^{N_{s}}\quad f_{j}}}$

where: f_(j) stands for said respective proportionality factor relatingto the j-th synchronous flow, and N_(A) is the number of saidasynchronous flows.
 9. System for the scheduling of a service resourceshared between multiple information packet flows, said flows generatingrespective associated queues and being served by the attribution of atoken; this plurality of flows includes synchronous flows (h=1, 2, . . ., N_(s)), which require a guaranteed minimum service rate, andasynchronous flows (i=1, 2, . . . , N_(A)) destined to exploit theservice capacity of said resource left unused by the synchronous flows,characterised by the fact that it includes a server (10) that is able tovisit the respective queues associated to said flows (h, i) insuccessive cycles; the system being configured to perform the followingoperations: determine an expected rotation time value (TTRT) whichidentifies the time necessary for the server (10) to complete a visitingcycle of said respective queues, associate to each synchronous flow (h)a respective synchronous capacity value (H_(h)) indicative of themaximum amount of time for which a synchronous flow can be served beforerelinquishing the token, associate to each asynchronous flow (i) a firstrespective delay value (lateness (i)) that identifies the delay thatmust be made up for the respective queue to have the right to be served,and a second respective value (last_token_time) that indicates theinstant in which the server (10) visited the respective queue in theprevious cycle, determining for said respective queue, the time that haspassed since the previous visit of the server (10), serve each queueassociated to a synchronous flow (h) for a maximum service time equal tosaid respective value of synchronous capacity (H_(h)), and serve eachqueue associated to an asynchronous flow (i) only if the server's visit(10) occurs before the expected instant, said advance being determinedas the difference between said expected rotation time value (TTRT) andthe time that has passed since the server's (10) previous visit and theaccumulated delay; if positive, this difference defines the maximumservice time for each said queue.
 10. System as per claim 9,characterised by the fact that the server (10) is configured in such away that if the queue is empty when the server (10) visits it, theserver (10) will move on to visit a subsequent queue even before therelative maximum service time has passed.
 11. Procedure as per claim 9or claim 10, characterised by the fact that, in the case in which saiddifference is negative, each said queue associated to an asynchronousflow (i) is not served by the said server (10) and the value of saiddifference is accumulated with said delay.
 12. Procedure as per any ofthe claims 9 to 11, characterised by the fact that said first respectivevalue (lateness (i)) and said second respective value (last_token_time)are initialised to zero.
 13. Procedure as per any one of the claims 9 to12, characterised by the fact that said respective synchronous capacityvalue (H_(h)) is determined in proportion to said expected rotation timevalue (TTRT).
 14. System as per claim 13, characterised by the fact thatsaid synchronous capacity value (H_(h)) is determined in proportion tosaid expected rotation time value (TTRT) according to a proportionalityfactor (C_(h)) selected in relation to the respective proportionalityfactor (f_(h)) between the service rate requested by the respectivesynchronous flow (h) and the service capacity of said shared resource.15. System as per claim 14, characterised by the fact that saidproportionality factor (C_(h)) is selected equal to said respectiveproportionality factor.
 16. System as per claim 14, characterised by thefact that said proportionality factor (C_(h)) is selected on the basisof the following formula$C_{h} = \frac{N_{A} \cdot f_{h}}{N_{A} + 1 - {\sum\limits_{j = 1}^{N_{s}}\quad f_{j}}}$

where: f_(j) stands for said respective proportionality factor relatingto the j-th synchronous flow, and N_(A) is the number of saidasynchronous flows.